home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 36 / PC Gamer IT CD 36 2-2.iso / VIGDEMO / data1.cab / Assets / scripts / rocket_launcher.e < prev    next >
Text File  |  1998-09-21  |  6KB  |  778 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451. int Initialize(string type)
  452. {
  453.     global int state;
  454.     global real repeatTime = 1.00;
  455.     global int gRocket = 0;        
  456.     global string gProjType = "rocket";
  457.     global int gGravity = 0;
  458.     global int gBulletCount = 20;
  459.     global int gClipSize = 5;
  460.     global int gStartSound = 7;
  461.     global int gProgressSound = 18;
  462.     global int gEndSound = -1;
  463.     global int gReloadSound = -1;
  464.     global real gLaunchVel = 20.0;
  465.     global real gMass = 5.0;
  466.         
  467.     Reset("dummy");
  468.     return 0;
  469.  
  470. }
  471.  
  472. int startsound(string soundname)
  473. {
  474.     gStartSound = GetSoundIndex(soundname);
  475.  
  476. }
  477.  
  478. int endsound(string soundname)
  479. {
  480.     gEndSound = GetSoundIndex(soundname);
  481.  
  482. }
  483.  
  484. int progresssound(string soundname)
  485. {
  486.     gProgressSound = GetSoundIndex(soundname);
  487.  
  488. }
  489.  
  490. int reloadsound(string soundname)
  491. {
  492.     gReloadSound = GetSoundIndex(soundname);
  493.  
  494. }
  495.  
  496. int destroy (string dummy)
  497. {
  498.     if (gRocket != 0)
  499.     {
  500.         Remove(gRocket,0);
  501.         gRocket = 0;
  502.     }
  503. }
  504.  
  505. int projtype(string str)
  506. {
  507.     gProjType = str;
  508. }
  509.  
  510. int Reset(string dummy)
  511. {
  512.     state = 1;
  513.     wakeupTime = 0.2;    
  514.     gRocket = 0;
  515.     SetCollidableProperties(thisObject,gGravity,0);
  516.     SetStyle(thisObject,2);
  517.     SetScale(thisObject,2.0);
  518.     gBulletCount = gClipSize;
  519.     return 0;
  520. }
  521.  
  522. int SerializeClean(string str)
  523. {
  524.     state = 1;
  525.     gRocket = 0;
  526.     wakeupTime = 0.2;    
  527. }
  528.  
  529. int repeattime(string str)
  530. {
  531.     repeatTime = Str2Real(str);
  532.     return 0;
  533. }
  534.  
  535.  
  536. int addammo(string count)
  537. {
  538.     int value = Str2Int(count);
  539.     gBulletCount = gBulletCount + value;
  540. }
  541.  
  542. int clipsize(string count)
  543. {
  544.     gClipSize = Str2Int(count);
  545.     gBulletCount = gClipSize;
  546. }
  547.  
  548. int GetMaxAmmo(string dummy)
  549. {
  550.     ReturnValue(thisObject, gClipSize);
  551. }
  552.  
  553. int reload(string count)
  554. {
  555.     int add;
  556.     add  = Str2Int(count);
  557.     if (add > 0)
  558.     {
  559.         PlaySound(thisObject,gReloadSound);
  560.         gBulletCount += add;
  561.     }
  562.     state = 2;
  563. }
  564.  
  565. int AmmoCount(string dum)
  566. {
  567.     ReturnValue(thisObject,gBulletCount);
  568. }
  569.  
  570. int CanHitTarget(string dum)
  571. {
  572.     int ret;
  573.     if (CheckObjectPath(gRocket) == 1) 
  574.         ret = 0;
  575.     else
  576.         ret = 1;
  577.  
  578.     ReturnValue(thisObject,ret);
  579.     return ret;
  580. }
  581.  
  582. int Drop(string dummy)
  583. {
  584.     int returnBullet;
  585.     SetScale(thisObject,2.0);
  586.     if (gRocket)
  587.         SetScale(gRocket,2.0);
  588.     SetCollidableProperties(thisObject,gGravity,0);
  589.     SetStyle(thisObject,2);
  590.     ReturnValue(thisObject,0);
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603. }
  604.  
  605. int Draw(string ammoCount)
  606. {
  607.     if (gRocket != 0)
  608.         SetStyle(gRocket,3);
  609.     gBulletCount = Str2Int(ammoCount);
  610. }
  611.  
  612. int Pickup(string dummy)
  613. {
  614.     SetRocketToParentStyle(0);
  615.     ReturnValue(thisObject,gBulletCount);
  616.     gBulletCount = 0;    
  617. }
  618.  
  619. int Holster(string dummy)
  620. {
  621.     if (gRocket != 0)
  622.         SetStyle(gRocket,4);
  623.     ReturnValue(thisObject,gBulletCount);
  624.     gBulletCount = 0;        
  625.  
  626. }
  627.  
  628. int gravity(string flag)
  629. {
  630.     int value;
  631.     value = Str2Int(flag);
  632.  
  633.     gGravity = value;
  634.     SetCollidableProperties(thisObject,gGravity,0);
  635. }
  636.  
  637. int Colliders(string dummy) 
  638. {
  639.     
  640.     map::iterator ix;
  641.     map objInList;
  642.     int value; 
  643.  
  644.     objInList = Collisions(thisObject,0,1,0);
  645.  
  646.     for (ix = begin(objInList) ;ix != end(objInList); ++ix) 
  647.     {
  648.         value = AddObjectTo(first(dereference(ix)),thisObject);
  649.         if (value != 0)
  650.         {
  651.             SetScale(thisObject,1.0);
  652.             break;
  653.         }
  654.     }
  655.     
  656.     return 0;
  657. }
  658.  
  659. int GetFireTime(string dummy)
  660. {
  661.     ReturnValueReal(thisObject,repeatTime);
  662.     return 0;
  663. }
  664.  
  665. int SetBulletCount(int count)
  666. {
  667.     gBulletCount = count;
  668. }
  669.  
  670. int FireFulfill(int hit)
  671. {
  672.     real time ;
  673.     time = GetTime(thisObject);
  674.  
  675.     state = 1;
  676.  
  677.     Animate(thisObject,1,"fire");
  678.     ParentFire(thisObject);
  679.     Launch(thisObject,gRocket,1,gLaunchVel,1.0,1);
  680.  
  681.     gRocket = 0;
  682.     wakeupTime = time + repeatTime;
  683. }
  684.  
  685. int Fire(int flag)
  686. {
  687.     real time ;
  688.     time = GetTime(thisObject);
  689.     int result = 0;
  690.  
  691.     if (UnlimitedAmmo(thisObject) == 1)
  692.         gBulletCount = gClipSize;
  693.  
  694.  
  695.  
  696.         if (state == 2) 
  697.         {
  698.             if (gBulletCount >= 1)
  699.             {
  700.                 gBulletCount--;
  701.                 FireSaveInfo(thisObject,1,gBulletCount,gMass);
  702.                 FireCommand(thisObject);
  703.  
  704.                 result = 1;
  705.             }
  706.             else
  707.             {
  708.                 state = 4;
  709.                 ParentReloadCommand(thisObject);
  710.             }
  711.         }
  712.  
  713.     ReturnValue(thisObject,result);    
  714.     return result;
  715. }
  716.  
  717. int SetRocketToParentStyle(int hello)
  718. {
  719.     if (gRocket != 0)
  720.     {
  721.         int result;
  722.         result = IsVisible(thisObject);
  723.         if (result !=0)
  724.             SetStyle(gRocket,3);
  725.         else
  726.             SetStyle(gRocket,4);
  727.  
  728.         SetToParentScale(gRocket);
  729.     }
  730. }
  731.  
  732. int SetBulletCount(int count)
  733. {
  734.     gBulletCount = count;
  735. }
  736.  
  737. int TimedEvent(int input)
  738. {
  739.     int time;
  740.     time = GetTime(thisObject);
  741.  
  742.     switch (state)
  743.     {
  744.     case 0:
  745.         break;
  746.     case 1:
  747.         gRocket = MakeProjectile(thisObject,gProjType);
  748.  
  749.         if (gRocket == 0)
  750.         {
  751.             wakeupTime = time + repeatTime;  
  752.             print("can't make a rocket");
  753.             return 0;
  754.         }
  755.         else
  756.         {
  757.             SetRocketToParentStyle(0);
  758.         }
  759.         Animate(thisObject,0,"fire");
  760.         PlaySound(thisObject,gEndSound);
  761.         state = 2;
  762.         wakeupTime = -1.0;
  763.         break;
  764.     default:
  765.         break;
  766.     }
  767.     return 0;
  768. }
  769.  
  770. int FlushDied(int brain)
  771. {
  772.     if (gRocket == brain)
  773.     {
  774.         gRocket = 0;
  775.         state = 1;
  776.     }
  777. }
  778.